{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 逻辑回归预测考试通过"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**任务:**\n",
    "\n",
    "基于examdata.csv数据，建立逻辑回归模型\n",
    "预测Exam1 = 75, Exam2 = 60时，该同学在Exam3是 passed or failed;\n",
    "建立二阶边界，提高模型准确度"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "@Author  : Flare Zhao\n",
    "@Email: 454209979@qq.com\n",
    "@QQ讨论群：530533630  申请加群的验证信息为订单号（粘贴号码数字即可）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Exam1</th>\n",
       "      <th>Exam2</th>\n",
       "      <th>Pass</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>34.623660</td>\n",
       "      <td>78.024693</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.286711</td>\n",
       "      <td>43.894998</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>35.847409</td>\n",
       "      <td>72.902198</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60.182599</td>\n",
       "      <td>86.308552</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>79.032736</td>\n",
       "      <td>75.344376</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Exam1      Exam2  Pass\n",
       "0  34.623660  78.024693     0\n",
       "1  30.286711  43.894998     0\n",
       "2  35.847409  72.902198     0\n",
       "3  60.182599  86.308552     1\n",
       "4  79.032736  75.344376     1"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#load the data\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "data = pd.read_csv('examdata.csv')\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#visualize the data\n",
    "%matplotlib inline \n",
    "from matplotlib import pyplot as plt\n",
    "fig1 = plt.figure()\n",
    "plt.scatter(data.loc[:,'Exam1'],data.loc[:,'Exam2'])\n",
    "plt.title('Exam1-Exam2')\n",
    "plt.xlabel('Exam1')\n",
    "plt.ylabel('Exam2')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0      True\n",
      "1      True\n",
      "2      True\n",
      "3     False\n",
      "4     False\n",
      "      ...  \n",
      "95    False\n",
      "96    False\n",
      "97    False\n",
      "98    False\n",
      "99    False\n",
      "Name: Pass, Length: 100, dtype: bool\n"
     ]
    }
   ],
   "source": [
    "#add label mask\n",
    "mask=data.loc[:,'Pass']==1\n",
    "print(~mask)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3da5hU9ZXv8e8SiYAaQUUPAgZmDoMitoCNoxIZlahxIkhMRBP14SQmGKOjITMaSI54mTHB6BwznMR4jBqZSWJCvF9GxaCGjGNiGlFEkQeNDBeJtAgIsc0ArvNi7yqKpqq7bvtW9fs8Tz9Vtbsuq6ur9tr/29rm7oiIiADskXQAIiKSHkoKIiKSp6QgIiJ5SgoiIpKnpCAiInlKCiIikqekICIieUoKkilmttLMOsxsa8HP92OO4R/N7GUz225m15RxfzezP3WK+coYQi2M4a/M7EEzazezd83sCTMbHmcMkg17Jh2ASBUmuvuvEnz914Erga9U8Jij3P31iOIpR1/gIeALwBZgFvAgcFiCMUkKqaUgDcHMfmhm9xTcvsHMFlign5k9Eh4lbwyvDyq47zNm9k9m9p/hUfzDZnaAmf3UzN4zs9+b2ZDc/d19rrs/RrBzrTXufzezfy64/QszuzO8/pdm9pSZbTCzd8J4+hbcd6WZXWFmS8KWyB1mdrCZPWZmW8zsV2bWL4z5eXe/w93fdfdtwM3AcDM7oNa/QRqLkoI0ir8HWszsf5nZCcCFwFQP6rjsAfwY+BhwKNABdO5yOhe4ABgI/CXwXPiY/YFlwNURxf1F4AIzO9nMzgPGApeHvzPgO8AhwOHAYOCaTo//DHAK8FfAROAx4JvAgQR/92UlXnc88Ed331C3v0QagrqPJIseMLPtBbevcPcfmdn5wOMER/B/5+5rAMId3725O5vZ9cDTnZ7zx+7+Rvj7x4ARuS4qM/sl8I81xvyCmX1YcPscd3/C3f9oZl8B5gK9gcnuviWM+3WCriqAdjP7P+yenP6vu78dxvkbYL27Lw5v3w9M6BxI2Er6AfD1Gv8maUBKCpJFk4uNKbj782b2B+AgYF5uu5n1Iegu+STQL9y8r5n1cPcd4e23C56qo8jtfcoJzMxeIWiRAJzu7r8Jr4/pYkzhEYKWy3J3/4+C5zoImAOcAOxLcOS/sdNjK4rbzPoD84Fb3P3ucv4maS7qPpKGYWaXAHsBbxEMBOf8PTAc+Gt3/yhB1wkE3TN15e5HuPs+4c9vun8EANcTdFENMLPPFWz/DuBASxj3+dQQczi+MB94yN2vr/Z5pLGppSANwcz+Cvgn4ETgfeB5M3vM3V8kOMruADaZ2f7UOD5gZj2BHgQHVXuaWS9gW0Gro5LnGk8wI+goYChB19hCd18bxr05jHsgcEUNMX8UeAJ41t1nVPs80vjUUpAserjTnP/7gZ8AN7j7S+6+gmCw9d/MbC/gewT99e8AvyUYd6jFjwiSzOeAb4XXL+jmMS91ivl74Y76X4FL3X1t2HV0B/BjMzPgWmAMQWJ4FLivhpg/TTCI/YVOcRxaw3NKAzKdZEdERHLUUhARkTwlBRERyVNSEBGRPCUFERHJy/SU1AMPPNCHDBmSdBgiIpmyaNGid9y9f7HfZTopDBkyhLa2tqTDEBHJFDP7r1K/U/eRiIjkKSmIiEiekoKIiORlekxBRARg27ZtrFmzhg8++CDpUFKlV69eDBo0iJ49e5b9mMiSQnj2qDMI6ruPDLftD/wCGAKsBKa4+8bwdzMJToyyA7jM3Z+IKjYRaSxr1qxh3333ZciQIQRlo8Td2bBhA2vWrGHo0KFlPy7K7qO7COrXF5oBLHD3YcCC8DZmNoLgzFdHhI+5xcx6RBibiDSQDz74gAMOOEAJoYCZccABB1TceoosKbj7QuDdTpvPJDjDFOHl5ILtP3f3P7v7mwRnmzomqthEpPEoIeyumvck7oHmg919HUB4eVC4fSCwuuB+a8JtuzGzaWbWZmZt7e3tkQYrItJs0jL7qFg6K1rT291vc/dWd2/t37/ogrx4LZkHN4+Ea/oGl0vmdf8YEZE6u+aaa7jppptqfp64Zx+9bWYD3H2dmQ0A1ofb1wCDC+43iOCUium2ZB48fBls6whub14d3AZomZJcXCIiVYq7pfAQMDW8PhV4sGD7uWa2l5kNBYYBz8ccW+UWXLczIeRs6wi2i0hqPbB4LeNmP8XQGY8ybvZTPLB4bc3PuXLlSg477DCmTp1KS0sLn/3sZ3n//fe57rrrGDt2LCNHjmTatGnkTmw2Z84cRowYQUtLC+eeey4Av/71rxk1ahSjRo1i9OjRbNmyBYAbb7yRsWPH0tLSwtVX7zyb7PXXX8/w4cP5xCc+wfLly2v+GyDaKal3E5wv90AzW0NwXtzZwDwzuxBYBZwN4O6vmNk84FVgO3BJNee7jd3mNZVtr4MHFq/lxieW89amDg7p25srThvO5NFFh1+kQeh/Xl8PLF7LzPtepmNbsItZu6mDmfe9DFDz+7p8+XLuuOMOxo0bxxe/+EVuueUWLr30UmbNmgXABRdcwCOPPMLEiROZPXs2b775JnvttRebNm0C4KabbuIHP/gB48aNY+vWrfTq1Yv58+ezYsUKnn/+edydSZMmsXDhQvbee29+/vOfs3jxYrZv386YMWM4+uija4ofIkwK7v65Er+aUOL+1wPXRxVPJPYbFHQZFdsegSg/zJJO+p/X341PLM+/nzkd23Zw4xPLa35PBw8ezLhx4wA4//zzmTNnDkOHDuW73/0u77//Pu+++y5HHHEEEydOpKWlhfPOO4/JkyczeXIwEXPcuHF8/etf57zzzuOss85i0KBBzJ8/n/nz5zN69GgAtm7dyooVK9iyZQuf/vSn6dOnDwCTJk2qKfactAw0Z9OEWdCz967bevYOtkegqw+zNCb9z+vvrU0dFW2vROcpoGbGV7/6Ve655x5efvllvvzlL+fXDTz66KNccsklLFq0iKOPPprt27czY8YMbr/9djo6Ojj22GN57bXXcHdmzpzJiy++yIsvvsjrr7/OhRdeWPT16kFJoRYtU2DiHNhvMGDB5cQ5kQ0yR/lhlp2K9TdH0Qddjiz8z5N6b6p1SN/eFW2vxKpVq3juuecAuPvuu/n4xz8OwIEHHsjWrVu55557APjwww9ZvXo1J510Et/97nfZtGkTW7du5Y033uDII4/kG9/4Bq2trbz22mucdtpp3HnnnWzduhWAtWvXsn79esaPH8/9999PR0cHW7Zs4eGHH645flDto9q1TIltptEhfXuztsjOoB4fZgkU66654pcvgcG2HZ7fFlcXTrX/87jGIbLYvXXFacN3iRmgd88eXHHa8Jqf+/DDD2fu3LlcdNFFDBs2jIsvvpiNGzdy5JFHMmTIEMaOHQvAjh07OP/889m8eTPuzvTp0+nbty9XXXUVTz/9ND169GDEiBGcfvrp7LXXXixbtozjjjsOgH322Yef/OQnjBkzhnPOOYdRo0bxsY99jBNOOKHm+AEsNxKeRa2trd5MJ9np/AWE4MP8nbOOTO0XMGvGzX6q6E64mIF9e/PsjJMjjaea/3mcn5NS71cc702hZcuWcfjhh5d9/yiS5sqVKznjjDNYunRpTc9Tb8XeGzNb5O6txe6vlkK5lswLpppuXhMMJE+YFftahNyHVjNRolNJt0wcXTjV/M+jHEjtLAvdW8VMHj1Q35sSlBTKkaJFavowR6tUd02p+8ah0v95nDtqdWnuNGTIkNS1EqqhgeZyaJFa07jitOH07rlrgd6eexg9e+w6y6NefdBRiHIgtbNi71ea3xvpnpJCORJYpCbJmDx6IN8560gG9u2NEfSN33j2Udz42aN22ZbmcZw4d9TF3q80vzfSPXUflSPmRWqSrFLdNVnZ0cU99qQuzcaipFCOCbN2HVOASBepidRKO2qplrqPyhHzIjURyZ45c+Zw+OGHc9555xX9fVtbG5ddFkxQueuuu7j00ksrev4hQ4bwzjvv1Bxnd9RSKFeMi9REyqFCeelyyy238Nhjj5U8H3JrayutrUWXBqSKWgoiGZRboLZ2UwfOzpXEaS8xkRp1PjnWV77yFf7whz8wadIkbrjhBo4//nhGjx7N8ccfny9p/cwzz3DGGWfs9tj29nY+85nPMHbsWMaOHcuzzz4LwIYNGzj11FMZPXo0F110EXEtNFZSEMkgFcqrQW7d0ebVgO9cd1RDYrj11ls55JBDePrpp7n44otZuHAhixcv5rrrruOb3/xml4+9/PLLmT59Or///e+59957+dKXvgTAtddey8c//nEWL17MpEmTWLVqVdXxVULdRyIZlJWVxKns4upq3VEduog3b97M1KlTWbFiBWbGtm3burz/r371K1599dX87ffee48tW7awcOFC7rvvPgA+9alP0a9fv5pjK4eSgkgGZWElcWqL5UW87uiqq67ipJNO4v7772flypWceOKJXd7/ww8/5LnnnqN3793/d1GUxu6Ouo9EMigLK4lT28VVan1RndYdbd68mYEDg6R31113dXv/U089le9///v52y+++CIA48eP56c//SkAjz32GBs3bqxLfN1RUhDJoCysJC7VlVVubanIRHxyrCuvvJKZM2cybtw4duzo/qzCc+bMoa2tjZaWFkaMGMGtt94KwNVXX83ChQsZM2YM8+fP59BDD61LfN1R6WwRyavnGECpstoG3HzOqLomsEpLZ6eh6nFcKi2dnUhLwcwuN7OlZvaKmX0t3La/mT1pZivC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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig2 = plt.figure()\n",
    "passed=plt.scatter(data.loc[:,'Exam1'][mask],data.loc[:,'Exam2'][mask])\n",
    "failed=plt.scatter(data.loc[:,'Exam1'][~mask],data.loc[:,'Exam2'][~mask])\n",
    "plt.title('Exam1-Exam2')\n",
    "plt.xlabel('Exam1')\n",
    "plt.ylabel('Exam2')\n",
    "plt.legend((passed,failed),('passed','failed'))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    34.623660\n",
       "1    30.286711\n",
       "2    35.847409\n",
       "3    60.182599\n",
       "4    79.032736\n",
       "Name: Exam1, dtype: float64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#dafine X,y\n",
    "X = data.drop(['Pass'],axis=1)\n",
    "y = data.loc[:,'Pass']\n",
    "X1 = data.loc[:,'Exam1']\n",
    "X2 = data.loc[:,'Exam2']\n",
    "X1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(100, 2) (100,)\n"
     ]
    }
   ],
   "source": [
    "print(X.shape,y.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=100,\n",
       "                   multi_class='auto', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#establish the model and train it\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "LR = LogisticRegression()\n",
    "LR.fit(X,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1\n",
      " 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1\n",
      " 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1]\n"
     ]
    }
   ],
   "source": [
    "#show the predicted result and its accuracy\n",
    "y_predict = LR.predict(X)\n",
    "print(y_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.89\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "accuracy =  accuracy_score(y,y_predict)\n",
    "print(accuracy)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "passed\n"
     ]
    }
   ],
   "source": [
    "#exam1=70,exam2=65\n",
    "y_test = LR.predict([[70,65]])\n",
    "print('passed' if y_test==1 else 'failed')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-25.05219314])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "LR.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-25.05219314] 0.2053549121779039 0.2005838039546905\n"
     ]
    }
   ],
   "source": [
    "theta0 = LR.intercept_\n",
    "theta1,theta2 = LR.coef_[0][0],LR.coef_[0][1]\n",
    "print(theta0,theta1,theta2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0     89.449169\n",
      "1     93.889277\n",
      "2     88.196312\n",
      "3     63.282281\n",
      "4     43.983773\n",
      "        ...    \n",
      "95    39.421346\n",
      "96    81.629448\n",
      "97    23.219064\n",
      "98    68.240049\n",
      "99    48.341870\n",
      "Name: Exam1, Length: 100, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "X2_new = -(theta0+theta1*X1)/theta2\n",
    "print(X2_new)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig3 = plt.figure()\n",
    "passed=plt.scatter(data.loc[:,'Exam1'][mask],data.loc[:,'Exam2'][mask])\n",
    "failed=plt.scatter(data.loc[:,'Exam1'][~mask],data.loc[:,'Exam2'][~mask])\n",
    "plt.plot(X1,X2_new)\n",
    "plt.title('Exam1-Exam2')\n",
    "plt.xlabel('Exam1')\n",
    "plt.ylabel('Exam2')\n",
    "plt.legend((passed,failed),('passed','failed'))\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "边界函数： $\\theta_0 + \\theta_1 X_1 + \\theta_2 X_2 = 0$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![linear_boundary.png](images/linear_boundary.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "边界函数： $\\theta_0 + \\theta_1 X_1 + \\theta_2 X_2 = 0$\n",
    "\n",
    "二阶边界函数：$\\theta_0 + \\theta_1 X_1 + \\theta_2 X_2+ \\theta_3 X_1^2 + \\theta_4 X_2^2 + \\theta_5 X_1 X_2 = 0$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "#create new data\n",
    "X1_2 = X1*X1\n",
    "X2_2 = X2*X2\n",
    "X1_X2 = X1*X2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           X1         X2         X1_2         X2_2        X1_X2\n",
      "0   34.623660  78.024693  1198.797805  6087.852690  2701.500406\n",
      "1   30.286711  43.894998   917.284849  1926.770807  1329.435094\n",
      "2   35.847409  72.902198  1285.036716  5314.730478  2613.354893\n",
      "3   60.182599  86.308552  3621.945269  7449.166166  5194.273015\n",
      "4   79.032736  75.344376  6246.173368  5676.775061  5954.672216\n",
      "..        ...        ...          ...          ...          ...\n",
      "95  83.489163  48.380286  6970.440295  2340.652054  4039.229555\n",
      "96  42.261701  87.103851  1786.051355  7587.080849  3681.156888\n",
      "97  99.315009  68.775409  9863.470975  4730.056948  6830.430397\n",
      "98  55.340018  64.931938  3062.517544  4216.156574  3593.334590\n",
      "99  74.775893  89.529813  5591.434174  8015.587398  6694.671710\n",
      "\n",
      "[100 rows x 5 columns]\n"
     ]
    }
   ],
   "source": [
    "X_new = {'X1':X1,'X2':X2,'X1_2':X1_2,'X2_2':X2_2,'X1_X2':X1_X2}\n",
    "X_new = pd.DataFrame(X_new)\n",
    "print(X_new)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=100,\n",
       "                   multi_class='auto', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#establish new model and train\n",
    "LR2 = LogisticRegression()\n",
    "LR2.fit(X_new,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "y2_predict = LR2.predict(X_new)\n",
    "accuracy2 = accuracy_score(y,y2_predict)\n",
    "print(accuracy2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0     34.623660\n",
      "1     30.286711\n",
      "2     35.847409\n",
      "3     60.182599\n",
      "4     79.032736\n",
      "        ...    \n",
      "95    83.489163\n",
      "96    42.261701\n",
      "97    99.315009\n",
      "98    55.340018\n",
      "99    74.775893\n",
      "Name: Exam1, Length: 100, dtype: float64 63    30.058822\n",
      "1     30.286711\n",
      "57    32.577200\n",
      "70    32.722833\n",
      "36    33.915500\n",
      "        ...    \n",
      "56    97.645634\n",
      "47    97.771599\n",
      "51    99.272527\n",
      "97    99.315009\n",
      "75    99.827858\n",
      "Name: Exam1, Length: 100, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "X1_new = X1.sort_values()\n",
    "print(X1,X1_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "边界函数： $\\theta_0 + \\theta_1 X_1 + \\theta_2 X_2 = 0$\n",
    "\n",
    "二阶边界函数：$\\theta_0 + \\theta_1 X_1 + \\theta_2 X_2+ \\theta_3 X_1^2 + \\theta_4 X_2^2 + \\theta_5 X_1 X_2 = 0$\n",
    "\n",
    "$a x^2 + b x + c=0: x1 = (-b+(b^2-4ac)^.5)/2a,x1 = (-b-(b^2-4ac)^.5)/2a$\n",
    "\n",
    "$\\theta_4 X_2^2 + (\\theta_5 X_1++ \\theta_2) X_2 + (\\theta_0 + \\theta_1 X_1 + \\theta_3 X_1^2)=0$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "63    132.124249\n",
      "1     130.914667\n",
      "57    119.415258\n",
      "70    118.725082\n",
      "36    113.258684\n",
      "         ...    \n",
      "56     39.275712\n",
      "47     39.251001\n",
      "51     38.963585\n",
      "97     38.955634\n",
      "75     38.860426\n",
      "Name: Exam1, Length: 100, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "theta0 = LR2.intercept_\n",
    "theta1,theta2,theta3,theta4,theta5 = LR2.coef_[0][0],LR2.coef_[0][1],LR2.coef_[0][2],LR2.coef_[0][3],LR2.coef_[0][4]\n",
    "a = theta4\n",
    "b = theta5*X1_new+theta2\n",
    "c = theta0+theta1*X1_new+theta3*X1_new*X1_new\n",
    "X2_new_boundary = (-b+np.sqrt(b*b-4*a*c))/(2*a)\n",
    "\n",
    "print(X2_new_boundary)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig5 = plt.figure()\n",
    "passed=plt.scatter(data.loc[:,'Exam1'][mask],data.loc[:,'Exam2'][mask])\n",
    "failed=plt.scatter(data.loc[:,'Exam1'][~mask],data.loc[:,'Exam2'][~mask])\n",
    "plt.plot(X1_new,X2_new_boundary)\n",
    "plt.title('Exam1-Exam2')\n",
    "plt.xlabel('Exam1')\n",
    "plt.ylabel('Exam2')\n",
    "plt.legend((passed,failed),('passed','failed'))\n",
    "plt.show()\n",
    "\n",
    "plt.plot(X1_new,X2_new_boundary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
